package cn.vendcommon.com.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

/**
 * 登录日志表实体类
 * 用于记录用户登录情况（成功或失败）
 */
@Data
@TableName("login_log") // 对应数据库表名
@AllArgsConstructor
@NoArgsConstructor
public class LoginLog {

    /**
     * 主键ID（自增）
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 用户手机号
     */
    private String phone;

    /**
     * 登录时的IP地址
     */
    private String ip;

    /**
     * 创建时间（记录登录时间）
     */
    private LocalDateTime createTime;

    /**
     * 登录状态（0：失败 1：成功）
     */
    private Integer state;


    public LoginLog(String phone, String ip, Date date) {
        this.phone = phone;
        this.ip = ip;
        if (date != null) {
            Instant instant = date.toInstant();
            this.createTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
        } else {
            this.createTime = LocalDateTime.now();
        }
    }
}
